iT邦幫忙

2024 iThome 鐵人賽

DAY 2
3

上一篇中,我們講述了系列的整體方向。現在,我將進一步深入,為你詳細介紹系列的架構與各個章節安排。

可以說,本文就是整個系列的藍圖。

一般而言,架構介紹通常會直接放在第一篇的後半段(如果有的話),但我決定獨立成一篇。

原因無他,我在整個教學架構上花費了相當的心思,希望為讀者提供一個全面的概覽。這有助於你快速進入狀況,並了解自己目前正在學習主題哪一個部分。

話不說多,讓我們一一介紹。


本系列共分為八章,只有第三章有細分小節——因為內容較多。

以下是各章節介紹。(各篇名稱與內容仍可能會有小幅調整,但整體架構不變)

第一章:導讀與 Django Ninja 介紹

開篇介紹本系列的主旨、定位,適合的目標讀者,以及學習 Django Ninja 的理由。

架構篇中,說明系列的安排與組成、每篇文章的主要內容與學習順序。

最後為讀者介紹 Django Ninja 與 Django REST Framework 等基本概念,包括彼此的定位與異同。

  • 卷 1:系列導讀 × 目標讀者
  • 卷 2:架構 × 章節導覽(本篇)
  • 卷 3:Django Ninja 介紹——與 Django REST framework 主要區別

第二章:範例專案與環境設定

介紹系列的範例專案——Django-Ninja-Tutorial,透過具體的程式碼改動,作為學習過程中的參考。(覺得專案有用心的話,千萬不要吝嗇你的 🌟 哦!🥰)

範例程式碼是學習新技術的良師益友,也是我的嘔心瀝血之作 😭

我們也會介紹專案所使用的 Python 開發工具,讓讀者能體驗真實的開發環境。

最後,我們會一步一步帶著你,讓專案能夠在你的本機環境運行。

  • 卷 4:範例專案介紹
  • 卷 5:Python 現代開發工具介紹
  • 卷 6:環境設定 × 如何使用本專案

第三章:Django Ninja 基本功

Django Ninja 的核心部分,任何一個 API 開發者都需要熟悉的基本功。

本章總共分成三大部分:路由、請求與回應

第一節:路由(Routers)

端點(endpoints)與路由是 API 的起點。

Django Ninja 的路由設定方式,與傳統 Django 有很大不同。因此,我們將路由放在第一位,作為學習 API 開發的入口。

  • 卷 7:路由(上)傳統 Django 路由做法(兼章節概論)
  • 卷 8:路由(下)Django Ninja 路由

第二節:請求(Request)

路由之後是 HTTP 請求,講述 Django Ninja 處理請求的三大重點:路徑參數、查詢參數和請求主體(body)。

其中最重要的是 body,將使用 Django Ninja Schema(即 Pydantic BaseModel)來進行資料接收與驗證。

  • 卷 9:請求(一)Django Ninja 處理請求概論(兼論 FBVs)
  • 卷 10:請求(二)Path Parameters
  • 卷 11:請求(三)Query Parameters
  • 卷 12:請求(四)Request Body 與 Schema 介紹

第三節:回應(Response)

請求之後是回應,回應仍需要使用 Schema,但變化比請求更多。

本節將介紹回應的基本架構、處理方式、巢狀 Schema,以及 Resolver 方法。

  • 卷 13:回應(一)Django Ninja 處理回應概論
  • 卷 14:回應(二)Nested Response
  • 卷 15:回應(三)為什麼不使用 ModelSchema?—— Django Ninja 與 DRF 的設計理念比較
  • 卷 16:回應(四)Resolver 方法(類似 DRF 的 SerializerMethodField)

第四章:API 文件

掌握了 Django Ninja 如何處理請求與回應後,剩下的另一關鍵就是 API 文件。

API 文件的品質與可讀性對 API 使用者至關重要,本章將介紹 Django Ninja 在自動化產生 API 文件中的應用,並分享我認為的一些好的實踐。

  • 卷 17:API 文件的實踐重點
  • 卷 18:Pydantic 與 API 文件

第五章:資料驗證與錯誤處理

資料驗證和錯誤處理關係到 API 的穩定與可靠。本章探討如何在 Django Ninja 中有效地進行資料驗證和錯誤捕捉,確保 API 的健壯性。

  • 卷 19:資料驗證
  • 卷 20:錯誤處理

第六章:進階功能

雖說是入門,但我們仍有必要介紹 API 的常見進階功能。這些技術將協助你應對大型專案中的典型挑戰。

本章目標不是逐步引導你完成每個功能的實作,而是聚焦展示它們的概念與應用場景。你可以依據這些提示,自行深入學習與應用。

  • 卷 21:檔案上傳
  • 卷 22:分頁(Pagination)
  • 卷 23:過濾(Filtering)
  • 卷 24:限流(Throttling)
  • 卷 25:快取(Caching)

第七章:其他重要事項

本章將介紹幾個後端專案中不可或缺的主題,雖然它們與 Django Ninja 無直接關聯,但對於後端開發者來說,是必須掌握的技能。

  • 卷 26:認證(Authentication)
  • 卷 27:單元測試(一)Test Client 與 pytest Fixtures
  • 卷 28:單元測試(二)測試函式與覆蓋率
  • 卷 29:部署——Gunicorn 與容器化

第八章:系列回顧與完賽心得

簡單回顧整個系列,並分享我在本次鐵人賽的創作心得與感想。

  • 卷 30:系列回顧與完賽心得

結語

通過這篇導覽,你已經對整個系列的架構有了清晰的認識。接下來的每一篇文章都會按照這個藍圖,循序漸進地帶領你學習 Django Ninja。

下一篇,我們將正式介紹 Django Ninja,並與老牌的 Django REST Framework 進行比較,了解兩者在 API 開發的主要功能差異與適用場景。

本文同步發表於我的部落格——Code and Me


上一篇
卷 1:系列導讀 × 目標讀者
下一篇
卷 3:Django Ninja 介紹——與 Django REST Framework 主要區別
系列文
Django 忍法帖——Django Ninja 入門指南6
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言